package com.woniuxy01;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 * @author 作者
 * @create 2025-09-15 9:41
 */
public class Test01 {
    public static void main(String[] args) {
        String str = "2000-aaaa1-1";
        try {
            stringToDate04(str);
        } catch (Exception e) {
//            throw new RuntimeException(e);
            System.out.println("日期转换异常");
        }
        System.out.println("程序结束");
    }

    private static void test05() throws ParseException {
        String str = "2000-aaaa1-1";

        System.out.println(stringToDate01(str));

        try {

            Date date = stringToDate02(str);
            System.out.println(date);
        } catch (ParseException e) {
            System.out.println("日期转换失败");
        }

        try {
            System.out.println(stringToDate03(str));
        } catch (ParseException e) {
//            throw new RuntimeException(e);
            throw e;
        }
        System.out.println("程序结束");
    }

    public static Date stringToDate04(String str) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //这个方法的底层，如果不能转换，抛出了受查异常,受查异常编译器要求调用方法时必须处理
        try {
            Date date = sdf.parse(str);
            return date;
        } catch (ParseException e) {
            //处理异常，继续抛出异常:受查异常转成非受查异常抛出
            throw new RuntimeException(e);
        }
    }

    public static Date stringToDate03(String str) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //这个方法的底层，如果不能转换，抛出了受查异常,受查异常编译器要求调用方法时必须处理
        try {
            Date date = sdf.parse(str);
            return date;
        } catch (ParseException e) {
            //处理异常，继续抛出异常
            throw e;
        }
    }

    //自定义方法，实现字符串转日期
    public static Date stringToDate02(String str) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(str);
        return date;
    }

    //自定义方法，实现字符串转日期
    public static Date stringToDate01(String str) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //这个方法的底层，如果不能转换，抛出了受查异常,受查异常编译器要求调用方法时必须处理
        try {
            Date date = sdf.parse(str);
            return date;
        } catch (ParseException e) {
            System.out.println("处理异常");
            return new Date();
//            return null;
        }
    }

    private static void test04() {
        //        //集合并发访问异常
//        List<String> strs=new ArrayList<String>();
//        strs.add("aaa");
//        strs.add("bbb");
//        Iterator<String> iterator = strs.iterator();
//        while (iterator.hasNext()) {
//            System.out.println(iterator.next());
//            strs.add("ccc");
//        }

        int i = Integer.parseInt("123aaaaa");
        System.out.println(i);

//        Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2000-1-aa");
//        System.out.println(date);
        System.out.println("程序结束");
    }

    private static void test03() {
        try {
//            String str=null;
//            System.out.println(str.length());
//            int[] a={1};
//            System.out.println(a[1]);
            int i = Integer.parseInt("123afef");
            System.out.println("i=" + i);
        } catch (NullPointerException | ArrayIndexOutOfBoundsException e) {
            System.out.println("处理空指针异常和数组越界异常，使用相同的逻辑处理");
        } catch (Exception e) {
            System.out.println("处理其他异常");
        }
        System.out.println("程序结束");
    }

    private static void test02() {
        try {
            int[] a = {1, 2};
            System.out.println(a[0]);
            System.out.println(a[1]);
//            System.out.println(a[2]);
            System.out.println("try正常执行结束");
        } catch (Exception e) {
            System.out.println("发生了异常，处理异常");
        } finally {
            System.out.println("有没有异常都会执行");
        }
        System.out.println("程序结束");
    }

    private static void test01() throws ParseException {
        //        int[] a = new int[3];
//        System.out.println(a[0]);
//        System.out.println(a[1]);
//        System.out.println(a[2]);
//        System.out.println(a[3]);
//        System.out.println(10/0);
//        String str=null;
//        System.out.println(str.length());

        String str = "2000-1-1";
        Date date = new SimpleDateFormat().parse(str);
        System.out.println(date);
        System.out.println("aaa");
    }
}
